package context

import "github.com/gookit/validate"

// 定义登录请求需要校验的上下文
type LoginContext struct {
	Account  string `validate:"required" json:"account"`                     // 账号
	Password string `validate:"required|minLen:6|maxLen:16" json:"password"` // 密码
	CodeId   string `json:"codeId"`                                          // 验证码的key
	Code     string `validate:"required|length:6" json:"code"`               // 验证码
}

// Message 自定义验证器的错误信息（重写父类方法）
func (f LoginContext) Messages() map[string]string {
	return validate.MS{
		"required":    "{field}不能为空",
		"minLen":      "{field}不能少于%d位",
		"maxLen":      "{field}最大不能超过%d位",
		"Code.length": "{field}长度必须是%d位",
	}
}

// Translates 自定义字段翻译（重写父类方法）
func (f LoginContext) Translates() map[string]string {
	return validate.MS{
		"Account":  "用户账号",
		"Password": "用户密码",
		"CodeId":   "验证码的key",
		"Code":     "验证码",
	}
}
